package dslProgramGen.loopStatementsGenerators.util;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 尝试生成Loop语句的工具类
 */
public class TryToGenLoopStatementsUtil {
    public static Pattern ObjArrayMatcher = Pattern.compile("object_array_1_0\\[(\\d+)] = \\(Object\\)\\((.*?)\\);");

    /**
     * 将已经生成过Loop语句的DSL函数体的开始行和结束行pair对 列表 按startIndex的升序排列
     * @param processedStartAndEndIndexsPairList 已经生成过Loop语句的DSL函数体的开始行和结束行pair对 列表
     */
    public static void sortProcessedStartAndEndIndexsPairListByStartIndexAscending(List<List<Integer>> processedStartAndEndIndexsPairList) {
        Collections.sort(processedStartAndEndIndexsPairList, new Comparator<List<Integer>>() {
            @Override
            public int compare(List<Integer> o1, List<Integer> o2) {
                return o1.get(0).compareTo(o2.get(0));
            }
        });
    }
}
